﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Atentis_Connector
{
	/// <summary>
	/// Содержит общую информацию (без указания сторон по сделке) 
	/// по всем сделкам купли/продажи финансовых инструментов, 
	/// совершенным в торговой системе с начала торговой сессии
	/// </summary>
	class WrapperAll_Trades
	{
		private long m_TradeNo;
		/// <summary>
		/// Номер сделки в торговой системе
		/// </summary>
		public long TradeNo { get { return m_TradeNo; } set { m_TradeNo = value; } }

		private DateTime m_TradeTime;
		/// <summary>
		/// Время регистрации сделки в торговой системе
		/// </summary>
		public DateTime TradeTime { get { return m_TradeTime; } set { m_TradeTime = value; } }

		private int m_SecID;
		/// <summary>
		/// Идентификатор финансового инструмента
		/// </summary>
		public int SecID { get { return m_SecID; } set { m_SecID = value; } }

		private string m_SecBoard;
		/// <summary>
		/// Код режима торгов для финансового инструмента
		/// </summary>
		public string SecBoard { get { return m_SecBoard; } set { m_SecBoard = value; } }

		private string m_SecCode;
		/// <summary>
		/// Код финансового инструмента
		/// </summary>
		public string SecCode { get { return m_SecCode; } set { m_SecCode = value; } }

		private int m_Quantity;
		/// <summary>
		/// Объем сделки, выраженный в лотах
		/// </summary>
		public int Quantity { get { return m_Quantity; } set { m_Quantity = value; } }

		private double m_Price;
		/// <summary>
		/// Цена за одну ценную бумагу
		/// </summary>
		public double Price { get { return m_Price; } set { m_Price = value; } }

		private double m_Value;
		/// <summary>
		/// Объем сделки, выраженный в рублях
		/// </summary>
		public double Value { get { return m_Value; } set { m_Value = value; } }

		private double m_Yield;
		/// <summary>
		/// Доходность, рассчитанная по цене сделки
		/// </summary>
		public double Yield { get { return m_Yield; } set { m_Yield = value; } }

		private double m_AccruedInt;
		/// <summary>
		/// Накопленный купонный доход, рассчитанный в соответствии с количеством ценных бумаг данной сделки, в рублях
		/// </summary>
		public double AccruedInt { get { return m_AccruedInt; } set { m_AccruedInt = value; } }

		private double m_RepoRate;
		/// <summary>
		/// Ставка РЕПО, %
		/// </summary>
		public double RepoRate { get { return m_RepoRate; } set { m_RepoRate = value; } }

		private int m_RepoTerm;
		/// <summary>
		/// Срок РЕПО
		/// </summary>
		public int RepoTerm { get { return m_RepoTerm; } set { m_RepoTerm = value; } }

		private double m_StartDiscount;
		/// <summary>
		/// Начальный дисконт, %
		/// </summary>
		public double StartDiscount { get { return m_StartDiscount; } set { m_StartDiscount = value; } }

		private string m_Period;
		/// <summary>
		/// Период торговой сессии, когда была заключена сделка: "O" – открытие, "N" – нормальный, "C" – закрытие
		/// </summary>
		public string Period { get { return m_Period; } set { m_Period = value; } }

		private string m_TradeType;
		/// <summary>
		/// Тип сделки: "T" – обычная, "N" – внебиржевая
		/// </summary>
		public string TradeType { get { return m_TradeType; } set { m_TradeType = value; } }

		private string m_SettleCode;
		/// <summary>
		/// Код расчетов по сделке
		/// </summary>
		public string SettleCode { get { return m_SettleCode; } set { m_SettleCode = value; } }

		private byte m_RowState;
		/// <summary>
		/// Состояние сделки (0x40 – покупка, 0x80 – продажа)
		/// </summary>
		public byte RowState { get { return m_RowState; } set { m_RowState = value; } }

	}
}
